e72384b7382dc06810dda5a556b41c71fd06924f,src/main/java/org/orbeon/oxf/xforms/XFormsModel.java,XFormsModel,rebuildRecalculateRevalidateIfNeeded,#,948

Before Change


            Dispatch.dispatchEvent(new XFormsRebuildEvent(this));
            containingDocument.endOutermostActionHandler();
        }
        if (currentDeferredActionContext.recalculate) {
            containingDocument.startOutermostActionHandler();
            Dispatch.dispatchEvent(new XFormsRecalculateEvent(this));
            containingDocument.endOutermostActionHandler();
        }
        if (currentDeferredActionContext.revalidate) {
            containingDocument.startOutermostActionHandler();

After Change



    public void rebuildRecalculateRevalidateIfNeeded() {
        // Process deferred behavior
        final DeferredActionContext currentDeferredActionContext = deferredActionContext();
        // NOTE: We used to clear deferredActionContext , but this caused events to be dispatched in a different
        // order. So we are now leaving the flag as is, and waiting until they clear themselves.

        if (currentDeferredActionContext.rebuild()) {
            containingDocument().startOutermostActionHandler();
            Dispatch.dispatchEvent(new XFormsRebuildEvent(this));
            containingDocument().endOutermostActionHandler();
        }
        if (currentDeferredActionContext.recalculateRevalidate()) {
            containingDocument().startOutermostActionHandler();
            Dispatch.dispatchEvent(new XFormsRecalculateEvent(this));// xxx REVALIDATE
            containingDocument().endOutermostActionHandler();
        }
        if (currentDeferredActionContext.revalidate()) {
            containingDocument().startOutermostActionHandler();
            Dispatch.dispatchEvent(new XFormsRevalidateEvent(this));
            containingDocument().endOutermostActionHandler();
        }
    }